package com.vca.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vca.common.model.about.VcaAbout;
import com.vca.common.request.VcaAboutAddOrUpdateRequest;
import com.vca.common.request.VcaAboutAdminRequest;
import com.vca.common.response.AboutAdminResponse;
import com.vca.common.response.AboutFrontResponse;
import com.vca.common.response.VcaAboutAdminResponse;
import com.vca.common.vo.MyRecord;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 关于我们表 服务类
 * </p>
 *
 * @author Li
 * @since 2022/11/28 11:16
 */
public interface VcaAboutService extends IService<VcaAbout> {

    /**
     * 关于我们列表
     * @author Li
     * @date 2022/11/28 11:29
     * @return
     */
    List<VcaAboutAdminResponse> getList(VcaAboutAdminRequest request);

    /**
     * 修改排序
     * @param aboutId
     * @param sort
     * @author Li
     * @date 2022/11/28   13:10
     * @return
     */
    boolean updateSort(Long aboutId, Integer sort);

    /**
    * @Description: 修改状态 
    * @Param: [aboutId]
    * @author: Li
    * @date: 2022/11/28 13:45
    * @return: boolean
    */
    boolean updateStatus(Long aboutId);

    /**
    * @description 修改关于我们
    * @param request
    * @author Li
    * @date 2022/11/28 13:51
    * @return boolean
    */
    boolean updateAbout(VcaAboutAddOrUpdateRequest request);

    /**
    * @description  添加关于我们
    * @param request
    * @author Li
    * @date 2022/11/28 13:55
    * @return boolean
    */
    boolean addAbout(VcaAboutAddOrUpdateRequest request);

    /**
    * @description 删除
    * @param aboutId
    * @author Li
    * @date 2022/11/28 14:13
    * @return boolean
    */
    boolean deleteAbout(Long aboutId);

    /**
    * @description 根据id查询详情
    * @param aboutId
    * @author Li
    * @date 2022/12/2 18:21
    * @return com.vca.common.response.AboutAdminResponse
    */
    AboutAdminResponse getAbout(Long aboutId);

    /**
     * @description 获取关于列表
     * @author Li
     * @date 2022/12/9 14:44
     * @return java.util.List<com.vca.common.response.AboutFrontResponse>
     */
    List<AboutFrontResponse> getFrontList(String language);

    /**
     * @description 根据id获取关于信息
     * @methodName getFrontAbout
     * @param id
     * @author Li
     * @date 2023/1/9 9:28
     * @return {@link AboutFrontResponse}
     */
    AboutFrontResponse getFrontAbout(String language,Long id);

    /**
     * @description  获取关于列表和配置信息
     * @methodName getFrontAboutAndConfig
     * * @param 
     * @author Li
     * @date 2023/1/9 11:18
     * @return {@link Map}<{@link String,Object}>
     */
    Map<String,Object> getFrontAboutAndConfig(String language);
}
